﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel;
using System.Reflection;
using System.ComponentModel.DataAnnotations;

namespace SDE_FIC.Models
{
    /// <summary>
    /// Classe utilizada para lançamento de diário (diário de bordo da Turma)
    /// </summary>
    [Serializable]
    public class Diario
    {
        public Diario()
        {
            this.Data = DateTime.Now;
            this.Frequencias = new List<Frequencia>();

        }


        /// <summary>
        /// Código do Diário
        /// </summary>
        public long IdDiario { get; set; }

        /// <summary>
        /// Define o conteudo aplicado no treinamento
        /// </summary>
        [DisplayName("Conteúdo Programático")]
        [MaxLength(255)]
        public string Conteudo { get; set; }

        /// <summary>
        /// Ocorrências extra - classe
        /// </summary>
        [DisplayName("Ocorrências")]
        [MaxLength(255)]
        public string Ocorrencia { get; set; }

        /// <summary>
        /// Data do treinamento
        /// </summary>
        [DisplayName("Data de Lançamento")]
        [DataType(DataType.Date, ErrorMessage = "Data em formato inválido")]
        [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
        public System.DateTime Data { get; set; }

        /// <summary>
        /// Turma a qual se refere o treinamento
        /// </summary>
        public Turma Turma { get; set; }

        /// <summary>
        /// Define a unidade curricular utilizada para realização do treinamento
        /// </summary>
        public UnidadeCurricular UnidadeCurricular { get; set; }

        /// <summary>
        /// Resume as frequencias do diário
        /// </summary>
        public List<Frequencia> Frequencias { get; set; }

        //public IEnumerable<UnidadeCurricular> GetUnidadesCurriculares
        //{
        //    get
        //    {
        //        return (IEnumerable<UnidadeCurricular>)this.Turma.Curso.UnidadesCurriculares;

        //    }
        //}
    }
}